<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .btn1{
            background: coral;
            color: #ffffff;
        }

        .box div {
            width: 400px;
            height: 400px;
            border: 1px solid rebeccapurple;
            display: none;
        }
    </style>
    <script>
       //利用面向对象完成选项卡的功能
       //创建一个类
       //构造器： 根据id="box1" 获取到节点    获取到input:button   还需要获取到div
       //创建方法  隐藏的方法    显示的方法
       //当页面首次加载的时候就会先调用一次隐藏与显示的方法

       class Tabs {
           constructor(id,) {
                this.oBox = document.getElementById(id);
                //获取到this.oBox这个div内的三个input
                this.aBtn = this.oBox.getElementsByTagName('input');
                //获取到this.oBox这个div内的子div
                this.aDiv = this.oBox.getElementsByTagName('div');  
                //调用init方法
                this.init();
           }

           //定义一个初始化的方法
           init() {
               for(let i = 0;i<this.aBtn.length;i++){
                   this.aBtn[i].onclick = function() {
                       this.hide(); //现在的this指向的是input,所以我要将this进行绑定对象
                       this.show(i);
                   }.bind(this);//相当于将内层的this绑定到外层的this，这样就可以调用Tabs对象中的hide()和show()方法了
               }
           }

           hide() {
               for(let i = 0;i<this.aBtn.length;i++){
                   this.aBtn[i].className = '';
                   this.aDiv[i].style.display = 'none';
               }
           }

           show(index) {
                this.aDiv[index].className='btn1';
                this.aDiv[index].style.display='block';
           }


       }

       window.onload = function() {
           new Tabs('box1');
       }
     
    </script>
</head>
<body>
    <div id="box1" class="box">
        <input type="button" value="aaa" class="btn1">
        <input type="button" value="bbb">
        <input type="button" value="ccc">

        <div style="display: block;">aaa</div>
        <div>bbb</div>
        <div>ccc</div>
    </div>
</body>
</html>